<script>
	import tim from '@/utils/tim.js'
	export default {
		mounted() {
			/**官网有很多关于关于sdk 其他的监听方法（比如：有新的消息，用户资料更新等等）
			 * 详情可对照： https://imsdk-1252463788.file.myqcloud.com/IM_DOC/Web/SDK.html
			 * 监听的含义：服务端发生了数据变更---前端全局可以接收到变更通知--前端就可以自动触发某个事件来更新相应数据
			 * */
			// 登录成功后会触发 SDK_READY 事件，该事件触发后，可正常使用 SDK 接口
			this.loginTM();
			this.$tim.on(this.$TIM.EVENT.SDK_READY, this.onReadyStateUpdate, this);
			// 收到新消息
			this.$tim.on(this.$TIM.EVENT.MESSAGE_RECEIVED, this.onReceiveMessage);
			// 会话列表更新
			this.$tim.on(this.$TIM.EVENT.CONVERSATION_LIST_UPDATED, event => {
				this.$store.commit("updateConversationList", event.data);
			});
			this.$tim.on(TencentCloudChat.EVENT.SDK_READY, res=>{
				// let userId = uni.getStorageSync(userinfo).id?uni.getStorageSync(userinfo).id:0;
				// if(userId){
				// 	this.loginTM(userId);
				// }
			});
		},
		onLaunch: function() {
			console.log('App Launch')
			// this.$store.dispatch('IM/CreatIM')
			this.$store.dispatch('getinit');
			this.$store.dispatch('config/getAiSwitch');
		},
		onShow: function() {
			console.log('App Show')
			let nowtime = Date.parse(new Date())
			let oldtime = uni.getStorageSync('oldtime')
			// 如果超过设置获取userSig的时间,旧从新获取userSig,从新登入
			if(nowtime >= oldtime){
				// this.$store.dispatch('IM/loginTencent')
			}
		},
		onHide: function() {
			console.log('App Hide')
		},
		methods: {
			loginTM() {
				let userinfo = uni.getStorageSync('userinfo')
				if (!userinfo.id) return
				const userId = String(userinfo.id)
				let res = tim.genTestUserSig(userId)
				// let promise = this.$tim.login({
				// 	userID: userId,
				// 	userSig: res.userSig
				// });
				// promise.then((res) => {
				// 	console.log('登录成功')
				// 	//登录成功后 更新登录状态
				// 	// this.$store.commit("toggleIsLogin", true);
				// 	// //自己平台的用户基础信息
				// 	// uni.setStorageSync('userInfo', JSON.stringify(userInfo))
				// 	// //tim 返回的用户信息
				// 	// uni.setStorageSync('userTIMInfo', JSON.stringify(res.data))
				// 	// uni.reLaunch({
				// 	// 	url: '../tim/record'
				// 	// })
				// }).catch((err) => {
				// 	console.warn('login error:', err); // 登录失败的相关信息
				// });
				// console.log(this.$TUICallKit.init,'12');
				// res = tim.genTestUserSig(userId)
				this.$TUICallKit.init({
					sdkAppID: 1600011248,
					userID: userId,
					userSig: res.userSig,
				}).then(res=>{
					console.log(res,'success');
					// uni.showModal({
					// 	title:'success'
					// })
					
					this.$TUICallKit.setSelfInfo({ nickName: userinfo.name, avatar: this.ImgUrl+userinfo.avatar });
				}).catch(res=>{
					console.log(res,'fail');
					uni.showModal({
						title:'fail'
					})
				})
				
			},
			// login_im
			// loginTM(userId){
			// 	let res = tim.genTestUserSig(userId)
			// 	let promise = this.$tim.login({
			// 		userID: userId,
			// 		userSig: res.userSig
			// 	});
			// 	promise.then((res) => {
			// 		//登录成功后 更新登录状态
			// 		that.$store.commit("toggleIsLogin", true);
			// 		// 设置登陆的im用户信息
			// 		this.$tim.updateMyProfile({
			// 			avatar:uni.getStorageSync(userinfo).avatar,
			// 		});
			// 		//tim 返回的用户信息
			// 		uni.setStorageSync('userTIMInfo', JSON.stringify(res.data))
			// 	}).catch((err) => {
			// 		console.warn('login error:', err); // 登录失败的相关信息
			// 	});
			// },
			onReadyStateUpdate({name}) {
				const isSDKReady = name === this.$TIM.EVENT.SDK_READY ? true : false;
				//自动监听并更新 sdk 的ready 状态 （未登录是 notReady  登录后是ready）
				console.log('未登录是 notReady  登录后是ready:'+isSDKReady)
				this.$store.commit("toggleIsSDKReady", isSDKReady);
        //sdk ready 后  肯定完成了登录操作    这里可以获取用户存储在im的基础信息/离线消息/黑名单列表
			},
			
			onReceiveMessage({data: messageList}) {
				// this.handleAt(messageList);
				this.$store.commit("pushCurrentMessageList", messageList);
				
			},
			//根据消息列表请求聊天对象的用户信息 并完成数据拼接
		},
	}
</script>

<style lang="scss">
	.u-more{
		margin: 20rpx auto !important;
	}
	.u-empty{
		margin-top: 300rpx !important;
	}
	/* 注意要写在第一行，同时给style标签加入lang="scss"属性 */
	@import "@/uni_modules/uview-ui/index.scss";
	.line-1{
		word-break:keep-all;
		  white-space:nowrap;
		  overflow:hidden;
		  text-overflow:ellipsis; 
	}
	.line-2{
		word-break: break-all;
		text-overflow: ellipsis;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2; /* 超出几行省略 */
		overflow: hidden;
	}
	.line-3{
		word-break: break-all;
		text-overflow: ellipsis;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3; /* 超出几行省略 */
		overflow: hidden;
	}
	.fs-40{
		font-family: Alibaba PuHuiTi 2.0;
		font-size: 40rpx;
		font-weight: 600;
	}
	.fs-28{
		font-family: Alibaba PuHuiTi 2.0;
		font-size: 28rpx;
		font-weight: 600;
	}
	.flex{
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.flex1{
		display: flex;
		align-items: center;
	}
</style>
